How to write a recursive function